-- card: 4842 from stack: in.25 -- bmap block id: 8211 -- flags: 4000 -- background id: 2780 -- name: Report Preferences ----- HyperTalk script ----- global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade on opencard global RepPrefsSet put false into RepPrefsSet end opencard -- part 1 (button) -- low flags: 00 -- high flags: A005 -- rect: left=17 top=101 right=123 bottom=117 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Last Name ----- HyperTalk script ----- on mouseUp global theLastName put the hilite of me into theLastName end mouseUp -- part 2 (button) -- low flags: 00 -- high flags: A005 -- rect: left=17 top=125 right=147 bottom=117 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: First Name ----- HyperTalk script ----- on mouseUp global theFirstName put the hilite of me into theFirstName end mouseUp -- part 3 (button) -- low flags: 00 -- high flags: A005 -- rect: left=17 top=150 right=172 bottom=117 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: SS number ----- HyperTalk script ----- on mouseUp global theSSNumber put the hilite of me into theSSNumber end mouseUp -- part 4 (button) -- low flags: 00 -- high flags: A005 -- rect: left=17 top=175 right=197 bottom=117 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Code ----- HyperTalk script ----- on mouseUp global theCode put the hilite of me into theCode end mouseUp -- part 5 (button) -- low flags: 00 -- high flags: A005 -- rect: left=17 top=199 right=221 bottom=125 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Minor Scores ----- HyperTalk script ----- on mouseUp global theMinorScores put the hilite of me into theMinorScores end mouseUp -- part 6 (button) -- low flags: 00 -- high flags: A005 -- rect: left=17 top=224 right=246 bottom=125 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Minor Grades ----- HyperTalk script ----- on mouseUp global theMinorGrades put the hilite of me into theMinorGrades end mouseUp -- part 7 (button) -- low flags: 00 -- high flags: A005 -- rect: left=16 top=248 right=270 bottom=140 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Minor Averages ----- HyperTalk script ----- on mouseUp global theMinorAVerages put the hilite of me into theMinorAverages end mouseUp -- part 8 (button) -- low flags: 00 -- high flags: A005 -- rect: left=188 top=101 right=123 bottom=296 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Exam Scores ----- HyperTalk script ----- on mouseUp global theExamScores put the hilite of me into theExamScores end mouseUp -- part 9 (button) -- low flags: 00 -- high flags: A005 -- rect: left=188 top=125 right=147 bottom=296 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Exam Grades ----- HyperTalk script ----- on mouseUp global theExamGrades put the hilite of me into theExamGrades end mouseUp -- part 10 (button) -- low flags: 00 -- high flags: A005 -- rect: left=188 top=149 right=171 bottom=313 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Exam Averages ----- HyperTalk script ----- on mouseUp global theExamAverages put the hilite of me into theExamAverages end mouseUp -- part 11 (button) -- low flags: 00 -- high flags: A005 -- rect: left=188 top=174 right=196 bottom=296 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Paper Scores ----- HyperTalk script ----- on mouseUp global thePaperScores put the hilite of me into thePaperScores end mouseUp -- part 12 (button) -- low flags: 00 -- high flags: A005 -- rect: left=188 top=198 right=220 bottom=296 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Paper Grades ----- HyperTalk script ----- on mouseUp global thePaperGrades put the hilite of me into thePaperGrades end mouseUp -- part 13 (button) -- low flags: 00 -- high flags: A005 -- rect: left=188 top=222 right=244 bottom=316 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Paper Averages ----- HyperTalk script ----- on mouseUp global thePaperAverages put the hilite of me into thePaperAverages end mouseUp -- part 14 (button) -- low flags: 00 -- high flags: A005 -- rect: left=356 top=101 right=123 bottom=486 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Final Exam Score ----- HyperTalk script ----- on mouseUp global theFinalScore put the hilite of me into theFinalScore end mouseUp -- part 15 (button) -- low flags: 00 -- high flags: A005 -- rect: left=356 top=125 right=147 bottom=488 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Final Exam Grade ----- HyperTalk script ----- on mouseUp global theFinalGrade put the hilite of me into theFinalGrade end mouseUp -- part 16 (button) -- low flags: 00 -- high flags: A005 -- rect: left=356 top=149 right=171 bottom=464 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Term Score ----- HyperTalk script ----- on mouseUp global theTermScore put the hilite of me into theTermScore end mouseUp -- part 17 (button) -- low flags: 00 -- high flags: A005 -- rect: left=356 top=174 right=196 bottom=464 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Term Grade ----- HyperTalk script ----- on mouseUp global theTermGrade put the hilite of me into theTermGrade end mouseUp -- part 18 (button) -- low flags: 00 -- high flags: A003 -- rect: left=368 top=295 right=317 bottom=468 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Cancel ----- HyperTalk script ----- on mouseUp visual effect dissolve go card "first record" end mouseUp -- part 19 (button) -- low flags: 00 -- high flags: A003 -- rect: left=194 top=296 right=318 bottom=325 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Clear All Choices ----- HyperTalk script ----- on mouseUp repeat with count = 1 to 17 get the hilite of card button count if it then get the loc of card button count click at it end if end repeat get the hilite of card button 24 if it then get the loc of card button 24 click at it end if end mouseUp -- part 21 (button) -- low flags: 00 -- high flags: A003 -- rect: left=20 top=296 right=318 bottom=157 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Select All Choices ----- HyperTalk script ----- on mouseUp repeat with count = 1 to 17 get the hilite of card button count if not it then get the loc of card button count click at it end if end repeat get the hilite of card button 24 if not it then get the loc of card button 24 click at it end if end mouseUp -- part 24 (button) -- low flags: 00 -- high flags: A000 -- rect: left=359 top=241 right=288 bottom=476 -- title width / last selected line: 0 -- icon id / first selected line: 26298 / 26298 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Create Column Display ----- HyperTalk script ----- global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences on mouseUp global stringhold,maxcolumns,numberofcolumns,cardoffset answer "Include students who withdrew?" with "yes" or "no" or "Cancel" if it is "yes" then put true into dodrop else if it is "no" then put false into dodrop else exit mouseup end if put 7 into maxcolumns go card "first record" show field "message" put "Relax..."&return&"This may take"&return&"quite a while." into field "message" set the lockscreen to true push card get the number of this card put it into start get the number of last card put it into finish go card "rows & columns" put empty into card field "rows & columns" put empty into card field "headerfield" getHeader if numberofcolumns > maxcolumns then answer "Too many columns. Change your settings." with "OK" or "Cancel" if it is "Cancel" then go card "first record exit mouseup else go to card "report preferences" exit mouseup end if end if put stringhold into line 1 of card field "headerfield" put 1 into linecount repeat with count = start to finish push card go card count set the lockscreen to false if (bkgnd field "withdrew" is empty) or (dodrop) then put "Relax..."&return&"This may take"&return&"quite a while." into field "message" put "Processing record"&&count-cardoffset into line 6 of field "message" set the lockscreen to true getaLine go card "Rows & Columns" put stringhold into line linecount of card field "Rows & Columns" put linecount+1 into linecount go card count else pop card end if end repeat pop card set the lockscreen to false hide field "message" beep visual effect dissolve to gray go card "rows and columns" end mouseUp on getHeader global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences global stringhold,howmany, numberofcolumns,maxcolumns global thismanyminors, thismanyexams, thismanypapers put twelvetab("Last Name") into stringhold put stringhold&twelvetab("First Name") into stringhold push card go card "first record" howmanycolumns if numberofcolumns > maxcolumns then exit getheader --but if we’re still here, then do the following: If theMinorScores and theMinorGrades then repeat with count = 1 to thismanyminors put "Asg#"&count&&"S" into tempscore put "Asg#"&count&&"G" into tempgrade put stringhold&eighttab(tempscore) into stringhold put stringhold&eighttab(tempgrade) into stringhold end repeat end if If theMinorScores and not theMinorGrades then repeat with count = 1 to thismanyminors put "Asg#"&count&&"S" into tempscore put stringhold&eighttab(tempscore) into stringhold end repeat end if If theMinorGrades and not theMinorScores then repeat with count = 1 to thismanyminors put "Asg#"&count&&"G" into tempgrade put stringhold&eighttab(tempgrade) into stringhold end repeat end if if theMinorAverages then put stringhold&eighttab("Av.M S") into stringhold put stringhold&eighttab("Av.M G") into stringhold end if If theExamScores and theExamGrades then repeat with count = 1 to thismanyexams put "Exam"&count&&"S" into tempscore put "Exam"&count&&"G" into tempgrade put stringhold&eighttab(tempscore) into stringhold put stringhold&eighttab(tempgrade) into stringhold end repeat end if If theExamScores and not theExamGrades then repeat with count = 1 to thismanyexams put "Exam"&count&&"S" into tempscore put stringhold&eighttab(tempscore) into stringhold end repeat end if If theExamGrades and not theExamScores then repeat with count = 1 to thismanyexams put "Exam"&count&&"G" into tempgrade put stringhold&eighttab(tempgrade) into stringhold end repeat end if if theExamAverages then put stringhold&eighttab("Av.E S") into stringhold put stringhold&eighttab("Av.E G") into stringhold end if If thePaperScores and thePaperGrades then repeat with count = 1 to thismanypapers put "Papr"&count&&"S" into tempscore put "Papr"&count&&"G" into tempgrade put stringhold&eighttab(tempscore) into stringhold put stringhold&eighttab(tempgrade) into stringhold end repeat end if If thePaperScores and not thePaperGrades then repeat with count = 1 to thismanypapers put "Papr"&count&&"S" into tempscore put stringhold&eighttab(tempscore) into stringhold end repeat end if If thePaperGrades and not thePaperScores then repeat with count = 1 to thismanypapers put "Papr"&count&&"G" into tempgrade put stringhold&eighttab(tempgrade) into stringhold end repeat end if if thePaperAverages then put stringhold&eighttab("Av.P S") into stringhold put stringhold&eighttab("Av.P G") into stringhold end if if thefinalScore then put stringhold&sixtab("FnlS") into stringhold if theFinalGrade then put stringhold&fourtab("FnlG") into stringhold if theAbsences then put stringhold&sixtab ("Absns") into stringhold if theTermScore then put stringhold&sixtab ("TrmS") into stringhold if theTermGrade then put stringhold&fourtab("TERM") into stringhold put stringhold&return into stringhold pop card end getHeader on howmanycolumns global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences global howmany, numberofcolumns global thismanyminors, thismanyexams, thismanypapers put 0 into numberofcolumns if theSSnumber then put 1+numberofcolumns into numberofcolumns if theCode then put 1+numberofcolumns into numberofcolumns if theMinorAverages then put 2+numberofcolumns into numberofcolumns if theExamAverages then put 2+numberofcolumns into numberofcolumns if thePaperAverages then put 2+numberofcolumns into numberofcolumns if theFinalScore then put 1+numberofcolumns into numberofcolumns if theFinalGrade then put 1+numberofcolumns into numberofcolumns if theTermScore then put 1+numberofcolumns into numberofcolumns if theTermGrade then put 1+numberofcolumns into numberofcolumns if theMinorScores then getHowManyMinors put howmany+numberofcolumns into numberofcolumns end if if theMinorGrades then getHowManyMinors put howmany into thismanyminors put howmany+numberofcolumns into numberofcolumns end if if theExamScores then getHowManyExams put howmany into thismanyexams put howmany+numberofcolumns into numberofcolumns end if if theExamGrades then getHowManyExams put howmany+numberofcolumns into numberofcolumns end if if thePaperScores then getHowManyPapers put howmany into thismanypapers put howmany+numberofcolumns into numberofcolumns end if if thePaperGrades then getHowManyPapers put howmany+numberofcolumns into numberofcolumns end if end howmanycolumns on getaLine global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences global stringhold global thismanyminors, thismanyexams, thismanypapers get field "last name" put twelvetab(it) into stringhold get field "first name" put stringhold&twelvetab(it) into stringhold If theMinorScores and theMinorGrades then repeat with count = 1 to thismanyminors get field 8+count put stringhold&eighttab(it) into stringhold get field 22+count put stringhold&eighttab(it) into stringhold end repeat end if If theMinorScores and not theMinorGrades then repeat with count = 1 to thismanyminors get field 8+count put stringhold&eighttab(it) into stringhold end repeat end if If theMinorGrades and not theMinorScores then repeat with count = 1 to thismanyminors get field 22+count put stringhold&eighttab(it) into stringhold end repeat end if if theMinorAverages then get field "av minor s" put stringhold&eighttab(it) into stringhold get field "av minor g" put stringhold&eighttab(it) into stringhold end if If theExamScores and theExamGrades then repeat with count = 1 to thismanyexams put 38 + count into whichfield get field whichfield put stringhold&eighttab(it) into stringhold get field 41+count put stringhold&eighttab(it) into stringhold end repeat end if If theExamScores and not theExamGrades then repeat with count = 1 to thismanyexams get field 38+count put stringhold&eighttab(it) into stringhold end repeat end if If theExamGrades and not theExamScores then repeat with count = 1 to thismanyexams get field 41+count put stringhold&eighttab(it) into stringhold end repeat end if if theExamAverages then get field "av exam s" put stringhold&eighttab(it) into stringhold get field "av exam g" put stringhold&eighttab(it) into stringhold end if If thePaperScores and thePaperGrades then repeat with count = 1 to thismanypapers get field 46+count put stringhold&eighttab(it) into stringhold get field 50+count put stringhold&eighttab(it) into stringhold end repeat end if If thePaperScores and not thePaperGrades then repeat with count = 1 to thismanypapers get field 46+count put stringhold&eighttab(it) into stringhold end repeat end if If thePaperGrades and not thePaperScores then repeat with count = 1 to thismanypapers get field 50+count put stringhold&eighttab(it) into stringhold end repeat end if if thePaperAverages then get field "av paper s" put stringhold&eighttab(it) into stringhold get field "av paper g" put stringhold&eighttab(it) into stringhold` end if if theFinalScore then get field "final exam score" put stringhold&sixtab(it) into stringhold end if if theFinalGrade then get field "final exam grade" put stringhold&fourtab(it)into stringhold end if if theAbsences then get field "Absences" put stringhold&sixtab(it) into stringhold end if if theTermScore then get field "term score" put stringhold&sixtab(it) into stringhold end if if theTermGrade then get field "term grade" put stringhold&fourtab(it) into stringhold put stringhold&return into stringhold end if end getaLine function sixteentab instring get the length of instring put it into howlong put 16-howlong into spacer repeat with count=1 to spacer put space after instring end repeat return instring end sixteentab function twelvetab instring get the length of instring put it into howlong put 12-howlong into spacer repeat with count=1 to spacer put space after instring end repeat return instring end twelvetab function eighttab instring get the length of instring put it into howlong put 8-howlong into spacer repeat with count=1 to spacer put space after instring end repeat return instring end eighttab function sixtab instring get the length of instring put it into howlong put 6-howlong into spacer repeat with count=1 to spacer put space after instring end repeat return instring end sixtab function fourtab instring get the length of instring put it into howlong put 4-howlong into spacer repeat with count=1 to spacer put space after instring end repeat return instring end fourtab -- part 25 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=418 top=33 right=54 bottom=481 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: help! ----- HyperTalk script ----- on mouseUp set the visible of card field "help" to not the visible of card field "help" end mouseUp -- part 27 (button) -- low flags: 00 -- high flags: A000 -- rect: left=267 top=242 right=289 bottom=342 -- title width / last selected line: 0 -- icon id / first selected line: 12602 / 12602 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Create Report ----- HyperTalk script ----- on mouseUp answer "Include students who withdrew?" with "yes" or "no" or "Cancel" if it is "yes" then put true into dodrop else if it is "no" then put false into dodrop else exit mouseup end if global stringhold,cardOffset get the short name of this stack put it into FileName ask "Name file for Gradebook data" with FileName&".txt" --if it is empty then exit mouseup put it into FileName open file FileName go card "first record" put empty into field "fullcolumns" show field "message" put "Relax..."&return&"This may take"&return&"quite a while." into field "message" --set the lockscreen to true push card go card "first record" get the number of this card put it into start get the number of last card put it into finish put 1 into linecount getHeadLine put stringhold into line linecount of field "fullcolumns" put linecount+1 into linecount repeat with count = start to finish push card --set the lockscreen to false go card count if (bkgnd field "withdrew" is empty) or (dodrop) then put "Relax..."&return&"This may take"&return&"quite a while." into field "message" getaLine put "Processing record"&&count-cardOffset into line 6 of field "message" set the lockscreen to true pop card put stringhold into line linecount of field "fullcolumns" put linecount+1 into linecount else pop card end if end repeat pop card write field "fullcolumns" to file FileName close file FileName --set the lockscreen to false put empty into field "fullcolumns" hide field "message" beep end mouseUp on getaLine global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences global stringhold put false into stringstarted if theLastName then get field "last name" put it into stringhold put true into stringstarted end if if theFirstName then get field "first name" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theSSnumber then get field "ss number" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theCode then get field "code" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theMinorScores and theMinorGrades then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put count+8 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if put count+22 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if theMinorScores and not theMinorGrades then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put count+8 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if theMinorGrades and not theMinorScores then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put count+22 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if theMinorAverages then get field "av minor s" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if get field "av minor g" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theExamScores and theExamGrades then get Howmany (exams) put it into rptCount repeat with count = 1 to rptCount put count+38 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if put count+41 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if theExamScores and not theExamGrades then get Howmany (exams) put it into rptCount repeat with count = 1 to rptCount put count+38 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if theExamGrades and not theExamScores then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put count+41 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if theExamAverages then get field "av exam s" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if get field "av exam g" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if thePaperScores and thePaperGrades then get Howmany (papers) put it into rptCount repeat with count = 1 to rptCount put count+46 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if put count+50 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if thePaperScores and not thePaperGrades then get Howmany (papers) put it into rptCount repeat with count = 1 to rptCount put count+46 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if thePaperGrades and not thePaperScores then get Howmany (papers) put it into rptCount repeat with count = 1 to rptCount put count+50 into theField get field theField if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end repeat end if if thePaperAverages then get field "av paper s" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if get field "av paper g" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theFinalScore then get field "final exam score" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theFinalGrade then get field "final exam grade" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theAbsences then get field "absences" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theTermScore then get field "term score" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if if theTermGrade then get field "term grade" if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end if put stringhold&return into stringhold end getaLine function howmany whichkind global minorgradetoscore,examgradetoscore,papergradetoscore,thismany put 0 into thismany if whichkind = "minor" then if not minorgradetoscore then repeat with count = 9 to 22 --the "minor score" fields get field count if it is not empty then put count-8 into thismany end repeat else repeat with count = 23 to 36 --the "minor grade" fields get field count if it is not empty then put count-22 into thismany end if end repeat end if else if whichkind = "exams" then if not examgradetoscore then repeat with count = 39 to 41 get field count if it is not empty then put count-38 into thismany end repeat else repeat with count = 42 to 44 get field count if it is not empty then put count-41 into thismany end if end repeat end if else if whichkind = "papers" then if not papergradetoscore then repeat with count = 47 to 49 get field count if it is not empty then put count-46 into thismany end repeat else repeat with count = 51 to 53 get field count if it is not empty then put count-50 into thismany end if end repeat end if else put "Foobar in the whichkind ifblock" end if return thismany end howmany on getHeadLine global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences --put "Now in getheadline" --wait 2 seconds global stringhold,stringstarted put empty into stringhold put false into stringstarted --put "Fixing to get lastname" if theLastName then put "Last Name" into stringhold put true into stringstarted end if --put "Fixing to get firstname" if theFirstName then get columnLabel("First Name") end if --put "Fixing to get SS" if theSSnumber then get columnLabel("SS #") end if --put "Fixing to get Code" if theCode then get columnLabel("Code") end if --put "Fixing to get Minorscores & Minorgrades" if theMinorScores and theMinorGrades then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put "Minor Score"&&count into it get columnLabel(it) put "Minor Grade"&&count into it get columnLabel(it) end repeat end if --put "Fixing to get minorscores" if theMinorScores and not theMinorGrades then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put "Minor Score"&&count into it get columnLabel(it) end repeat end if --put "Fixing to get minorgrades" if theMinorGrades and not theMinorScores then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put "Minor Grade"&&count into it get columnLabel(it) end repeat end if --put "Fixing to get minoraverages" if theMinorAverages then put "Minor Score Average" into it get columnLabel(it) put "Minor Grade Average" into it get columnLabel(it) end if --put "Fixing to get examscores & examgrades" if theExamScores and theExamGrades then get Howmany (exams) put it into rptCount repeat with count = 1 to rptCount put "Exam"&&count&&"Score" into it get columnLabel(it) put "Exam"&&count&&"Grade" into it get columnLabel(it) end repeat end if --put "Fixing to get Examscores" if theExamScores and not theExamGrades then get Howmany (exams) put it into rptCount repeat with count = 1 to rptCount put "Exam"&&count&&"Score" into it get columnLabel(it) end repeat end if --put "Fixing to get examgrades" if theExamGrades and not theExamScores then get Howmany (minor) put it into rptCount repeat with count = 1 to rptCount put "Exam"&&count&&"Grade" into it get columnLabel(it) end repeat end if --put "Fixing to get Examaverages" if theExamAverages then put "Av. Exam Score" into it get columnLabel(it) put "Av. Exam Grade" into it get columnLabel(it) end if --put "Fixing to get paperscores & papergrades" if thePaperScores and thePaperGrades then get Howmany (papers) put it into rptCount repeat with count = 1 to rptCount put "Paper"&&count&&"Score" into it get columnLabel(it) put "Paper"&&count&&"Grade" into it get columnLabel(it) end repeat --put "Fixing to get paperscores" end if if thePaperScores and not thePaperGrades then get Howmany (papers) put it into rptCount repeat with count = 1 to rptCount put "Paper"&&count&&"Score" into it get columnLabel(it) end repeat end if --put "Fixing to get papergrades" if thePaperGrades and not thePaperScores then get Howmany (papers) put it into rptCount repeat with count = 1 to rptCount put "Paper"&&count&&"Grade" into it get columnLabel(it) end repeat end if --put "Fixing to get paperaverages" if thePaperAverages then put "Av. Paper Score" into it get columnLabel(it) put "Av. Paper Grade" into it get columnLabel(it) end if --put "Fixing to get finalscore" if theFinalScore then --put "Final Exam Score" into it get columnLabel(it) end if --put "Fixing to get finalgrade" if theFinalGrade then put "Final Exam Grade" into it get columnLabel(it) end if --put "Fixing to get absences" if theAbsences then put "Absences" into it get columnLabel(it) end if --put "Fixing to get termscore" if theTermScore then put "TERM SCORE" into it get columnLabel(it) end if --put "Fixing to get termgrade" if theTermGrade then put "TERM GRADE" into it get columnLabel(it) end if put stringhold&return into stringhold end getHeadLine function columnLabel theLabel global stringhold,stringstarted put theLabel into it if stringstarted then put stringhold&tab&it into stringhold else put it into stringhold put true into stringstarted end if end columnLabel -- part 26 (field) -- low flags: 81 -- high flags: 2004 -- rect: left=16 top=94 right=295 bottom=348 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 9 -- style flags: 0 -- line height: 12 -- part name: help ----- HyperTalk script ----- on mouseup hide card field "help" end mouseup -- part 28 (button) -- low flags: 00 -- high flags: A005 -- rect: left=356 top=198 right=220 bottom=456 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Absences ----- HyperTalk script ----- on mouseUp global theAbsences put the hilite of me into theAbsences end mouseUp -- part contents for card part 26 ----- text ----- “Create Report” creates a tabbed text file on disk, suitable for importing into a spreadsheet or standard database. “Create Column Display” creates a columnar display within Hypercard. Get at it thru the "R & C" button on the record cards. The column display always includes first & last names, and a maximum of 7 data columns. This limitation is due to the limited width of a Hypercard screen. The various check boxes allow you to choose which fields are to appear in the report or display. The buttons "Select all" and "Clear all" provide a quick way to check or uncheck all boxes. After making your choices, click the "Report" or "Display" button. The “Cancel” button returns you to the Records section of the gradebook.